type类型别名
凯 5/21/2024 ts
# 1.type 类型别名 【掌握】
作用:为了简化 联合类型的定义 给某个类型改名字
作用:顶替 interface 定义对象的类型
- 面试题: type 和interface 异同? 【背】
答: interface 和 type 都可以 给 对象或函数 定义类型, interface 支持多个相同类型名的类型自动合并,type不支持相同类型的合并, type 可以给 复杂的类型 取别名,方便以后多次使用,简化代码, interface 不支持去别名
# 1.给类型取别名
type UserList = Array<User|Account>;
let userList:UserList =[
{name:'xxx',age:44},
{account:'xxxxx',password:'xxxxxx'},
]
1
2
3
4
5
6
2
3
4
5
6
# 2.顶替interface 定义对象类型
interface User{
name:string,
age:number
}
let user:User = {name:'xxx',age:444};
1
2
3
4
5
2
3
4
5
type User ={
name:string,
age:number
}
let user:User = {name:'xxx',age:444};
1
2
3
4
5
2
3
4
5
# 3.interface 可以进行类型的自动合并 type不行
interface User{
name:string,
age:number
}
interface User{
like:Array<string>
}
let user:User = {name:'xx',age:40,like:['x','xxx','xxx']}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
type User={
name:string,
age:number
}
type User={ //报错 相同别名的类型冲突
like:Array<string>
}
let user:User = {name:'xx',age:40,like:['x','xxx','xxx']}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9